home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / doors_2 / sread104.zip / SREAD.DOC < prev    next >
Text File  |  1992-08-26  |  27KB  |  1,209 lines

  1. SREAD/SPLUS Version 1.04 Documentation:
  2.  
  3. LEGAL STUFF:
  4.  
  5. I am responsible for NOTHING!  You are using this system totally at your
  6. own risk!  There is only one file that I write to at this time and that
  7. is the answers file.  All other files are simply either not used or read
  8. only! User takes sole responsibility for security and safety of any data
  9. while using this program.
  10.  
  11. Sread is not in the Public Domain. It is shareware. This means that you
  12. are free to copy it, upload it to bulletin boards, and share it with
  13. friends so long as no modification is made to the files contained in
  14. this archive but you must either register it or stop using it after
  15. thirty (30) days. No changes made be made to the contents or archive
  16. except as required to accommodate the default archive format of a
  17. particular BBS. No -AV's or ads for any BBS may be placed on, or in,
  18. this archive without the express permission of the author.
  19.  
  20. Files in this archive are:
  21.  
  22. SREAD.EXE     <- The main program
  23. SPLUS.EXE     <- Extended version
  24. SREAD.DOC     <- This file
  25. EXAMPLE1      <- Batch File used to run the door with DOOR.SYS
  26. EXAMPLE2      <- Batch File used to run the door with PCBOARD.SYS
  27. SREAD.QES     <- Sample script file covering two possible scripts
  28. SPLUS.QES     <- Sample extended script file.
  29. REGISTER.FRM  <- Registration form
  30. FILE_ID.DIZ   <- Description file
  31.  
  32. SREAD GENERAL INFORMATION:
  33.  
  34. All lines start with a some form of formatting information or that line will
  35. be considered to be the question that you want to ask.  The script format
  36. is totally compatible with PCBoard's script file while adding ProScript
  37. compatibility and my extensions via my own script commands using the
  38. D²Script(tm) language.  This is basically a full featured multiple
  39. script door.
  40.  
  41. PCBOARD COMPATIBLE FORMAT INFORMATION:
  42.  
  43. ;  Lines that start with a semicolon are all treated as displayed lines
  44.    but the semicolon is not displayed.  There is nothing done with the
  45.    line, as it is only displayed.
  46.  
  47. PROSCRIPT COMPATIBLE FORMAT INFORMATION:
  48.  
  49. \  All lines that start with this symbol will be treated as a input
  50.    formatting string.  These are the ProScript extensions and I have
  51.    tried to remain totally compatible with them.  They are fully
  52.    documented in the ProScript documentation.
  53.  
  54.    ProScript extensions:
  55.  
  56.        \?      ;require Y or N response
  57.        \#      ;require numeric response
  58.        \$      ;require any character as response
  59.        \_      ;optional but allowed response
  60.  
  61. SREAD FORMAT EXTENSIONS:
  62.  
  63. !  These lines are considered to be comments.  They are not displayed nor
  64.    are they written to the answer file.
  65.  
  66. ]  This line will be written to the answer file.  This will not be displayed
  67.    but will be written to the answer file.
  68.  
  69. %  This line will be written to the answer file and displayed.  You may use
  70.    any valid variables in this line.
  71.  
  72. $  This indicates that this is a label.  The label must be on a line by
  73.    itself and be the first thing on the line (at the leftmost margin).
  74.  
  75. ^  This is a command line and indicates a D²Script(tm) command.  The
  76.    commands are not case sensitive, so you may enter them in lowercase
  77.    if you want but recommend uppercase for readability.  See the following
  78.    pages for commands and syntax.
  79.  
  80.  
  81. ABORT
  82.  
  83. Purpose:
  84.  
  85.    Used to handle the times that you don't want to save the information
  86.    that the user has entered.
  87.  
  88. Syntax:
  89.  
  90.    ^ABORT
  91.  
  92. Comments:
  93.  
  94.    This is typically used after a question to see if the user is happy
  95.    with the answers they have given.  This is most useful when you do
  96.    not want extraneous information in your answer file.
  97.  
  98.  
  99. Example:
  100.  
  101.    ^JMP|$HAPPY|Are you happy with your answers?
  102.    ^ABORT
  103.    ^END
  104.  
  105.    $HAPPY
  106.       !
  107.       !This is where you could save the information or continue on in
  108.       !the script file.
  109.       !
  110.       ^ADJUST
  111.  
  112.  
  113. ACP
  114.  
  115. Purpose:
  116.  
  117.    This command is a shortcut method for quickly getting out of the
  118.    door depending on the users answer
  119.  
  120. Syntax:
  121.  
  122.    ^ACP|{question}
  123.  
  124. Comments:
  125.  
  126.    This command is used when you want to minimize the content of the
  127.    script or just don't want to worry about exiting details.  The user
  128.    is presented with the question and then system will wait for
  129.    a response.  If the response is in the negative, the door will
  130.    immediately exit, and no further action or script information is needed.
  131.  
  132. Example:
  133.  
  134.    ^DSP|RULES
  135.    ^ACP|Do you agree to abide by our rules?
  136.  
  137.    !The user must have agreed with our rules, so lets continue on.
  138.    
  139.    ^JMP|$ADULT|Do you want access to our adult section?
  140.    ^ABORT
  141.    ^END
  142.  
  143.    $ADULT
  144.       !
  145.       !You could continue from here
  146.       !
  147.  
  148.  
  149. ADJ
  150.  
  151. Purpose:
  152.  
  153.    This command will allow you to adjust the user level of the user
  154.    based on their answers.  
  155.  
  156. Syntax:
  157.  
  158.    ^ADJ|{Level}
  159.    ^ADJ|{+Level}
  160.    ^ADJ|{-Level}
  161.  
  162. Comments:
  163.  
  164.    The reason for different syntax is so that you can do a number of
  165.    things with this command.  If you select only the level, the system
  166.    will set the user level to this value.  If you preface the level with
  167.    a minus or plus sign, the user's level will be adjusted by the level.
  168.  
  169. Example:
  170.  
  171.  
  172.    ^JMP|$HAPPY|Have you answered all the questions honestly?
  173.    ^ABORT
  174.    ^END
  175.  
  176.    $HAPPY
  177.       ^ADJUST
  178.       ^ADJ|+10
  179.       ^END
  180.  
  181.  
  182. ADJUST
  183.  
  184. Purpose:
  185.  
  186.    Used to handle the times that you want to update the pointer that
  187.    keeps track of the position in the answer file.
  188.  
  189. Syntax:
  190.  
  191.    ^ADJUST
  192.  
  193. Comments:
  194.  
  195.    This is used usually used to update the pointer when you have a number
  196.    of pieces of a script file in one file.  The reason to use this is
  197.    so that ^ADJUST will be up to the point that you want to reset the
  198.    file to.   For example, if the user answered the first part of the
  199.    script and is happy with those answers, you would use ^ADJUST to
  200.    now move the pointer to the point after those saved answers.  That way,
  201.    if the users is not happy with the next section, it will only throw
  202.    away the next section of answers.
  203.  
  204. Example:
  205.  
  206.  
  207.    ^JMP|$HAPPY|Are you happy with your answers?
  208.    ^ABORT
  209.    ^END
  210.  
  211.    $HAPPY
  212.       ^ADJUST
  213.       ^JMP|$ADULT|Do you want access to our adult section?
  214.       ^ABORT
  215.       ^END
  216.  
  217.    $ADULT
  218.       !
  219.       !You could continue from here
  220.       !
  221.  
  222.  
  223. ASK
  224.  
  225. Purpose:
  226.  
  227.    This command is used to get multiple lines of input.  This is not
  228.    full screen capable.
  229.  
  230. Syntax:
  231.  
  232.    ^ASK|{Lines}
  233.  
  234. Comments:
  235.  
  236.    You specify the maximum number of lines that the user may enter.  You
  237.    should also explain to the user that they may get out by entering a
  238.    single blank line.
  239.  
  240. Example:
  241.  
  242.  
  243.    $ADDRESS
  244.  
  245.    ;Please enter you address.  You may enter up to 5 lines.  When you
  246.    ;are finished, you may press <enter> on a line by itself and you
  247.    ;will exit immediately.
  248.  
  249.    ^ASK|5
  250.    ;
  251.    ;JMP|$HAPPY|Are you happy with the way you entered your address?
  252.    ^ABORT
  253.    ^JPP|$ADDRESS
  254.  
  255.    $HAPPY
  256.       ^ADJUST
  257.       ^ADJ|+10
  258.       ^END
  259.  
  260.  
  261. ASSIGN (SPLUS only)
  262.  
  263. Purpose:
  264.  
  265.    Used to setup the formatting information for full screen data entry.
  266.  
  267. Syntax:
  268.  
  269.    ^ASSIGN|{row}|{col}|{Format String}
  270.  
  271. Comments:
  272.  
  273.    The formatting string is any valid ProScript format string.
  274.  
  275. Example:
  276.  
  277.  
  278.    ! Start assigning the field input information
  279.  
  280.    ^ASSIGN| 7|24|\$$_________________________________________
  281.    ^ASSIGN| 8|24|\$$_________________________________________
  282.    ^ASSIGN|10|24|\$$_________________________________________
  283.    ^ASSIGN|12|24|\?______
  284.    ^ASSIGN|13|24|\?______
  285.    ^ASSIGN|14|24|\?______
  286.    ^ASSIGN|12|60|\?______
  287.    ^ASSIGN|13|60|\?______
  288.    ^ASSIGN|14|60|\?______
  289.  
  290.    ^GET
  291.    ^GETSAVE
  292.  
  293.  
  294. CHG
  295.  
  296. Purpose:
  297.  
  298.    This will allow you to change the answer file that the results are
  299.    currently going to.
  300.  
  301. Syntax:
  302.  
  303.    ^CHG|{Filename}
  304.  
  305. Comments:
  306.  
  307.    Use this command any time you wish to change only the answer file.
  308.    This is useful when you may want to start saving the answers to
  309.    an alternate file.
  310.  
  311. Example:
  312.  
  313.  
  314.    $ADDRESS
  315.  
  316.    ;Please enter you address.  You may enter up to 5 lines.  When you
  317.    ;are finished, you may press <enter> on a line by itself and you
  318.    ;will exit immediately.
  319.  
  320.    ^ASK|5
  321.    ;
  322.    ;JMP|$BUSINESS|Do you wan to add your business address?
  323.    ^END
  324.  
  325.    $BUSINESS
  326.       ^CHG|BUS.ANS
  327.       ;Please enter you business address.  You may enter up to 5 lines.  
  328.       ;When you are finished, you may press <enter> on a line by itself 
  329.       ;and you will exit immediately.
  330.       ^ASK|5
  331.  
  332.  
  333. CLS
  334.  
  335. Purpose:
  336.  
  337.    This is used to clear the screen.
  338.  
  339. Syntax:
  340.  
  341.    ^CLS
  342.  
  343. Comments:
  344.  
  345.    Use this command any time you want to clear the screen.
  346.  
  347. Example:
  348.  
  349.  
  350.    ^CLS
  351.    ^DSP|RULES
  352.    ^ACP|Do you agree to abide by our rules?
  353.  
  354.  
  355. DEFICOLOR
  356. DEFQCOLOR
  357.  
  358. Purpose:
  359.  
  360.    These are used to set default color codes for data entry and
  361.    question displays.
  362.  
  363. Syntax:
  364.  
  365.    ^DEFICOLOR|{@Xxy}
  366.    ^DEFQCOLOR|{@Xxy}
  367.  
  368. Comments:
  369.  
  370.    ^DEFICOLOR is used to set the default color for data entry and
  371.               when a user is typing something.
  372.  
  373.    ^DEFQCOLOR is used to set the default color for questions that are
  374.               displayed.
  375.  
  376. Example:
  377.  
  378.  
  379.    ^DEFICOLOR|@X0E
  380.    ^DEFQCOLOR|@X0F
  381.  
  382.    ^JMP|$HAPPY|Are you happy with your answers?
  383.  
  384.  
  385. DEL
  386.  
  387. Purpose:
  388.  
  389.    Used to delete the specified file.
  390.  
  391. Syntax:
  392.  
  393.    ^DEL|{Filename}
  394.  
  395. Comments:
  396.  
  397.    You can use this whenever there is a file that you want to delete.
  398.  
  399. Example:
  400.  
  401.  
  402.    !
  403.    !The board may have created a temporary file that we want to get
  404.    !rid of.
  405.  
  406.    ^DEL|THRASH.TMP
  407.  
  408.  
  409. DSP
  410.  
  411. Purpose:
  412.  
  413.    Used to display a file.  
  414.  
  415. Syntax:
  416.  
  417.    ^DSP|{Filename}
  418.  
  419. Comments:
  420.  
  421.    If the user is in a graphics mode, the system will append a "G" to
  422.    the filename and try to display that file.  If there is no graphics
  423.    version it will try to non-graphics version.  
  424.  
  425. Example:
  426.  
  427.  
  428.    ^CLS
  429.    ^DSP|RULES
  430.    ^ACP|Do you agree to abide by our rules?
  431.  
  432.  
  433. END
  434.  
  435. Purpose:
  436.  
  437.    Used to end the processing of a script file.
  438.  
  439. Syntax:
  440.  
  441.    ^END
  442.  
  443. Comments:
  444.  
  445.    You can place this any number of time throughout the script file.
  446.    When the system gets to this command, it will end all processing
  447.    of the scrip file.  Close all files, and return to the system.
  448.  
  449. Example:
  450.  
  451.  
  452.    $BUSINESS
  453.       ^CHG|BUS.ANS
  454.       ;Please enter you business address.  You may enter up to 5 lines.  
  455.       ;When you are finished, you may press <enter> on a line by itself 
  456.       ;and you will exit immediately.
  457.       ^ASK|5
  458.       ^END
  459.  
  460.  
  461. GET (SPLUS Only)
  462.  
  463. Purpose:
  464.  
  465.    This command is used to get all the data from the ^ASSIGN command etc.
  466.  
  467. Syntax:
  468.  
  469.    ^GET
  470.  
  471. Comments:
  472.  
  473.    You use this command when you want to retrieve all that information from
  474.    the ^ASSIGN commands.  The user will have up and down cursor capability.
  475.  
  476. Example:
  477.  
  478.  
  479.    $DATAENTRY
  480.    ^GET
  481.  
  482.    ^GOSUB|$TURNEMOFF
  483.    ^LOCATE|18|4
  484.    ^JMP|$DATAENTRY|Are you happy with your answers? 
  485.    ^GOSUB|$TURNEMON
  486.    ^GETSAVE
  487.    ^ADJ|10
  488.    ^END
  489.  
  490.    $TURNEMOFF
  491.       ^LFOFF
  492.       ^LINESOFF
  493.       ^RETURN
  494.  
  495.    $TURNEMON
  496.       ^LFON
  497.       ^LINESON
  498.       ^RETURN
  499.  
  500.  
  501. GETSAVE (SPLUS Only)
  502.  
  503. Purpose:
  504.  
  505.    This command is used to save the information with the ^GET command.
  506.  
  507. Syntax:
  508.  
  509.    ^GETSAVE
  510.  
  511. Comments:
  512.  
  513.    Your information will not be saved until you call this command.
  514.  
  515. Example:
  516.  
  517.  
  518.    $DATAENTRY
  519.    ^GET
  520.  
  521.    ^GOSUB|$TURNEMOFF
  522.    ^LOCATE|18|4
  523.    ^JMP|$DATAENTRY|Are you happy with your answers? 
  524.    ^GOSUB|$TURNEMON
  525.    ^GETSAVE
  526.    ^ADJ|10
  527.    ^END
  528.  
  529.    $TURNEMOFF
  530.       ^LFOFF
  531.       ^LINESOFF
  532.       ^RETURN
  533.  
  534.    $TURNEMON
  535.       ^LFON
  536.       ^LINESON
  537.       ^RETURN
  538.  
  539.  
  540. GOSUB
  541.  
  542. Purpose:
  543.  
  544.    Used to call a sub-routine in the script.
  545.  
  546. Syntax:
  547.  
  548.    ^GOSUB|{$Label}
  549.  
  550. Comments:
  551.  
  552.    This will call a sub-routine that may be called any number of times
  553.    through the use of the script.  The sub-routine must end with a
  554.    ^RETURN
  555.  
  556. Example:
  557.       
  558.       
  559.    $PERSONAL
  560.       ;Please enter your address.  You may enter up to 5 lines.  
  561.       ;When you are finished, you may press <enter> on a line by itself 
  562.       ;and you will exit immediately.
  563.       ^ASK|5
  564.       ^GOSUB|$COMPLETED
  565.    
  566.    $BUSINESS
  567.       ;Please enter you business address.  You may enter up to 5 lines.  
  568.       ;When you are finished, you may press <enter> on a line by itself 
  569.       ;and you will exit immediately.
  570.       ^ASK|5
  571.       ^GOSUB|$COMPLETED
  572.       ^END
  573.  
  574.    $COMPLETED
  575.       ;All done.  Thank you.
  576.       ^RETURN
  577.  
  578.  
  579. ISGRAPHICS (SPLUS Only)
  580.  
  581. Purpose:
  582.  
  583.    This command is used to check for graphics mode.  
  584.  
  585. Syntax:
  586.  
  587.    ^ISGRAPHICS|{$Label}
  588.  
  589. Comments:
  590.  
  591.    You should always use this command to determine whether the user
  592.    is in the ANSI graphics mode.  Most SPLUS commands make extensive
  593.    use of the ANSI control codes, and the user must be in that mode.
  594.  
  595. Example:
  596.  
  597.  
  598.    ^ISGRAPHICS|$NEED_ANSI
  599.    !
  600.    !Normal execution continues here
  601.    !
  602.    ^END
  603.  
  604.    $NEED_ANSI
  605.       ;@FIRST@, you need to be in the ANSI graphics mode.  Please switch
  606.       ;to that mode.
  607.       ;
  608.       ^PAUSE
  609.       ^END
  610.  
  611.  
  612. JMP
  613.  
  614. Purpose:
  615.  
  616.    Used to branch in the script file depending on the user response.
  617.  
  618. Syntax:
  619.  
  620.    ^JMP|{$Label}|{Question}
  621.  
  622. Comments:
  623.  
  624.    This command will present the user with a question.  If the response
  625.    is negative, the script will jump to the $Label.
  626.  
  627. Example:
  628.  
  629.  
  630.    $BUSINESS
  631.       ;Please enter your business address.  You may enter up to 5 lines.  
  632.       ;When you are finished, you may press <enter> on a line by itself 
  633.       ;and you will exit immediately.
  634.       ^ASK|5
  635.  
  636.       ^JMP|$BUSINESS|Are you happy with your answers?
  637.       ^END
  638.  
  639.  
  640. JPP
  641.  
  642. Purpose:
  643.  
  644.    Used to branch in the script file unconditionally.
  645.  
  646. Syntax:
  647.  
  648.    ^JPP|{$Label}
  649.  
  650. Comments:
  651.  
  652.    This is used to force a jump to a particular $Label.
  653.  
  654. Example:
  655.  
  656.  
  657.    $BUSINESS
  658.       ;Please enter your business address.  You may enter up to 5 lines.  
  659.       ;When you are finished, you may press <enter> on a line by itself 
  660.       ;and you will exit immediately.
  661.       ^ASK|5
  662.  
  663.       ^JPP|$NEXTPART
  664.  
  665.  
  666. LFOFF
  667. LFON
  668.  
  669. Purpose:
  670.  
  671.    Used to control line feeds after displaying a question.
  672.  
  673. Syntax:
  674.  
  675.    ^LFOFF
  676.    ^LFON
  677.  
  678. Comments:
  679.  
  680.    ^LFOFF  - Used to turn off the line feeds.
  681.    ^LFON   - Used to turn on the line feeds.  (Default state)
  682.            
  683. Example:
  684.       
  685.  
  686.    ^GOSUB|$TURNEMOFF
  687.    ^JMP|$DATAENTRY|Are you happy with your answers? 
  688.    ^GOSUB|$TURNEMON
  689.    ^END
  690.  
  691.    $TURNEMOFF
  692.       ^LFOFF
  693.       ^LINESOFF
  694.       ^RETURN
  695.  
  696.    $TURNEMON
  697.       ^LFON
  698.       ^LINESON
  699.       ^RETURN
  700.  
  701.  
  702. LOCATE (SPLUS Only)
  703.  
  704. Purpose:
  705.  
  706.    Use this command to locate the information at an x by y coordinate.
  707.  
  708. Syntax:
  709.  
  710.    ^LOCATE|{row}|{col}|{Text Information}
  711.  
  712. Comments:
  713.  
  714.    This will allow you to display information at a give location.  You
  715.    do NOT have to include the text information.  If you do not, the next
  716.    displayed information will be at the location.  You MUST place all the
  717.    text information inside of double quotes or it will be ignored.
  718.  
  719. Example:
  720.  
  721.  
  722.    ! Setup the prompts for the screen
  723.  
  724.    ^LOCATE| 7| 4|"@X0BFirst Name ...... :"
  725.    ^LOCATE| 8| 4|"Last Name ....... :"
  726.    ^LOCATE|10| 4|"Account number .. :"
  727.    ^LOCATE|12| 4|"Adult access .... :"
  728.    ^LOCATE|13| 4|"Previous user ... :"
  729.    ^LOCATE|14| 4|"Mailing list .... :"
  730.    ^LOCATE|12|40|"Lifetime sub. ... :"
  731.    ^LOCATE|13|40|"Warnings ........ :"
  732.    ^LOCATE|14|40|"Locked out ...... :"
  733.  
  734.  
  735. LVL
  736.  
  737. Purpose:
  738.  
  739.    Used to control the branching of the script depending on the user
  740.    level.
  741.  
  742. Syntax:
  743.  
  744.    ^LVL|{min_level}|{max_level}|{$Label}
  745.  
  746. Comments:
  747.  
  748.    Use this command when you want to only allow users in the range
  749.    of user levels to do the script.  If the user level is equal to
  750.    or greater than min_level and the user level is less than or
  751.    equal to max_level, the command will fall through, otherwise it
  752.    will ^JMP to $Label.
  753.  
  754. Example:
  755.  
  756.  
  757.    ^LVL|1|9|$ALREADY_DONE
  758.    
  759.    ;Please enter your address.  You may enter up to 5 lines.  
  760.    ;When you are finished, you may press <enter> on a line by itself 
  761.    ;and you will exit immediately.
  762.    ^ASK|5
  763.    ^END
  764.  
  765.    $ALREADY_DONE
  766.       ;
  767.       ;@FIRST@, you don't have to answer this script again.  Thank you.
  768.       ;
  769.       ^PAUSE
  770.       ^END
  771.  
  772.  
  773. MUL
  774.  
  775. Purpose:
  776.  
  777.    Used to control the branching of the script depending on the users
  778.    answer.
  779.  
  780. Syntax:
  781.  
  782.    ^MUL|{$Label}|{$Label}|{$Label}|{$Label}|{$Label}|{$Label}
  783.  
  784. Comments:
  785.  
  786.    You may use up to ten labels or as few as two.  The user will be
  787.    presented with a prompt of enter a number from 1 to Label count.
  788.    If the user does not give a valid response, the command will drop
  789.    through, so it is highly recommended that you respond to the user
  790.    in some way to tell them it is an invalid response.
  791.  
  792. Example:
  793.  
  794.  
  795.    $MAIN_MENU
  796.    
  797.    ^CLS
  798.    ;
  799.    ;1. Script for access to our adult section.
  800.    ;2. Script for subscribing to our board via Visa/MC/Amex.
  801.    ;3. Script for validation.
  802.  
  803.    ^MUL|$ADULT|$CCARD|$VALIDATE
  804.    ;
  805.    ;Invalid response.
  806.    ;
  807.    ^PAUSE
  808.    ^JPP|$MAIN_MENU
  809.  
  810.  
  811. NEW
  812.  
  813. Purpose:
  814.  
  815.    Used to run another script.
  816.  
  817. Syntax:
  818.  
  819.    ^NEW|{Question File}|{Answer File}
  820.  
  821. Comments:
  822.  
  823.    Use this command to run a new script file.  This command will change
  824.    script file and answer file.  Use ^CHG if you only want to change the
  825.    answer file.  Also, this will loose any pending ^GOSUB commands.
  826.  
  827. Example:
  828.  
  829.  
  830.    $MAIN_MENU
  831.    
  832.    ^CLS
  833.    ;
  834.    ;1. Script for access to our adult section.
  835.    ;2. Script for subscribing to our board via Visa/MC/Amex.
  836.    ;3. Script for validation.
  837.  
  838.    ^MUL|$ADULT|$CCARD|$VALID
  839.    ;
  840.    ;Invalid response.
  841.    ;
  842.    ^PAUSE
  843.    ^JPP|$MAIN_MENU
  844.  
  845.    $ADULT
  846.       ^NEW|ADULT.QES|ADULT.ANS
  847.  
  848.    $CCARD
  849.       ^NEW|CCARD.QES|CCARD.ANS
  850.  
  851.    $VALID
  852.       ^NEW|VALID.QES|VALID.ANS
  853.  
  854.  
  855. PAUSE
  856.  
  857. Purpose:
  858.  
  859.    Used to prompt the user to press any key to continue.
  860.  
  861. Syntax:
  862.  
  863.    ^PAUSE
  864.  
  865. Comments:
  866.  
  867.    Use this anywhere you want to pause the script long enough for the
  868.    user to be able to see something on the screen.
  869.  
  870. Example:
  871.  
  872.  
  873.    $MAIN_MENU
  874.    
  875.    ^CLS
  876.    ;
  877.    ;1. Script for access to our adult section.
  878.    ;2. Script for subscribing to our board via Visa/MC/Amex.
  879.    ;3. Script for validation.
  880.  
  881.    ^MUL|$ADULT|$CCARD|$VALID
  882.    ;
  883.    ;Invalid response.
  884.    ;
  885.    ^PAUSE
  886.    ^JPP|$MAIN_MENU
  887.  
  888.    $ADULT
  889.       ^NEW|ADULT.QES|ADULT.ANS
  890.  
  891.    $CCARD
  892.       ^NEW|CCARD.QES|CCARD.ANS
  893.  
  894.    $VALID
  895.       ^NEW|VALID.QES|VALID.ANS
  896.  
  897.  
  898. RETURN
  899.  
  900. Purpose:
  901.  
  902.    Used to return from a sub-routine.
  903.  
  904. Syntax:
  905.  
  906.    ^RETURN
  907.  
  908. Comments:
  909.  
  910.    This command MUST be used at the end of a subroutine or you will
  911.    "fall through" to additional commands and never return.
  912.  
  913. Example:
  914.  
  915.       
  916.    $PERSONAL
  917.       ;Please enter your address.  You may enter up to 5 lines.  
  918.       ;When you are finished, you may press <enter> on a line by itself 
  919.       ;and you will exit immediately.
  920.       ^ASK|5
  921.       ^GOSUB|$COMPLETED
  922.    
  923.    $BUSINESS
  924.       ;Please enter you business address.  You may enter up to 5 lines.  
  925.       ;When you are finished, you may press <enter> on a line by itself 
  926.       ;and you will exit immediately.
  927.       ^ASK|5
  928.       ^GOSUB|$COMPLETED
  929.       ^END
  930.  
  931.    $COMPLETED
  932.       ;All done.  Thank you.
  933.       ^RETURN
  934.  
  935.  
  936. RTRN
  937.  
  938. Purpose:
  939.  
  940.    Used to return a DOS-Error level when exiting the system
  941.  
  942. Syntax:
  943.  
  944.    ^RTRN|{Level}
  945.  
  946. Comments:
  947.  
  948.    This command is used to return a DOS-Error level when you exit the
  949.    door.  You are allowed to use error levels in the range of 31 - 255.
  950.    1 - 29 are reserved for the system.  Level 30 is used to indicate
  951.    the ^RUN command was used to exit.
  952.  
  953. Example:
  954.  
  955.       
  956.    $PERSONAL
  957.       ;Please enter your address.  You may enter up to 5 lines.  
  958.       ;When you are finished, you may press <enter> on a line by itself 
  959.       ;and you will exit immediately.
  960.       ^ASK|5
  961.       ^GOSUB|$COMPLETED
  962.    
  963.    $BUSINESS
  964.       ;Please enter you business address.  You may enter up to 5 lines.  
  965.       ;When you are finished, you may press <enter> on a line by itself 
  966.       ;and you will exit immediately.
  967.       ^ASK|5
  968.       ^GOSUB|$COMPLETED
  969.       ^RTRN|35
  970.       ^END
  971.  
  972.    $COMPLETED
  973.       ;All done.  Thank you.
  974.       ^RETURN
  975.  
  976.  
  977. RUN
  978.  
  979. Purpose:
  980.  
  981.    This is used to run any valid DOS commands.
  982.  
  983. Syntax:
  984.  
  985.    ^RUN|{Complete DOS line}
  986.  
  987. Comments:
  988.  
  989.    This command will actually remove the system from memory and then
  990.    execute any command you give it.  If you called the system from
  991.    a batch file, you will be returned to the command just following 
  992.    the command that call the system when then run command is finished.
  993.  
  994. Example:
  995.  
  996.       
  997.    $PERSONAL
  998.       ;Please enter your address.  You may enter up to 5 lines.  
  999.       ;When you are finished, you may press <enter> on a line by itself 
  1000.       ;and you will exit immediately.
  1001.       ^ASK|5
  1002.       ^GOSUB|$COMPLETED
  1003.    
  1004.    $BUSINESS
  1005.       ;Please enter you business address.  You may enter up to 5 lines.  
  1006.       ;When you are finished, you may press <enter> on a line by itself 
  1007.       ;and you will exit immediately.
  1008.       ^ASK|5
  1009.       ^GOSUB|$COMPLETED
  1010.       ^RUN|cd \
  1011.  
  1012.    $COMPLETED
  1013.       ;All done.  Thank you.
  1014.       ^RETURN
  1015.  
  1016.  
  1017. SHL
  1018.  
  1019. Purpose:
  1020.  
  1021.    This is used to run any valid DOS commands and then return.
  1022.  
  1023. Syntax:
  1024.  
  1025.    ^SHL|{Complete DOS line}
  1026.  
  1027. Comments:
  1028.  
  1029.    This is used to shell out to DOS for any miscellaneous commands.
  1030.    There may not be much memory left, so use this with caution.
  1031.  
  1032. Example:
  1033.  
  1034.       
  1035.    $PERSONAL
  1036.       ;Please enter your address.  You may enter up to 5 lines.  
  1037.       ;When you are finished, you may press <enter> on a line by itself 
  1038.       ;and you will exit immediately.
  1039.       ^ASK|5
  1040.       ^GOSUB|$COMPLETED
  1041.    
  1042.    $BUSINESS
  1043.       ;Please enter you business address.  You may enter up to 5 lines.  
  1044.       ;When you are finished, you may press <enter> on a line by itself 
  1045.       ;and you will exit immediately.
  1046.       ^ASK|5
  1047.       ^GOSUB|$COMPLETED
  1048.       ^END
  1049.  
  1050.    $COMPLETED
  1051.       ;All done.  Thank you.
  1052.       ^SHL|BEEP
  1053.       ^RETURN
  1054.  
  1055.  
  1056. UPPEROFF
  1057. UPPERON
  1058.  
  1059. Purpose:
  1060.  
  1061.    Used to control the forcing of all information written to the answer
  1062.    file to be in upper case only.
  1063.  
  1064. Syntax:
  1065.  
  1066.    ^UPPEROFF   - Turns off upper case forcing.  (Default)
  1067.    ^UPPERON    - Turns on upper case forcing.
  1068.  
  1069. Comments:
  1070.  
  1071.    Place this anywhere that you would like to make the system write only
  1072.    upper case information to the answer file.  All information written
  1073.    will be converted and then written.
  1074.  
  1075. Example:
  1076.  
  1077.  
  1078.    ^UPPERON
  1079.    ;Please enter your address.  You may enter up to 5 lines.  
  1080.    ;When you are finished, you may press <enter> on a line by itself 
  1081.    ;and you will exit immediately.
  1082.    ^ASK|5
  1083.  
  1084.  
  1085. WRITEOFF
  1086. WRITEON
  1087.  
  1088. Purpose:
  1089.  
  1090.    This is used to control information being written to the answer file.
  1091.  
  1092. Syntax:
  1093.  
  1094.    ^WRITON     - Turns on writing to the answer file.  (Default)
  1095.    ^WRITEOFF   - Turns off writing to the answer file.
  1096.  
  1097. Comments:
  1098.  
  1099.    Use this command to control all writing to the answer file.  If you
  1100.    turn off the writing, be sure to remember to turn it back on or you
  1101.    will throw all your information away.
  1102.  
  1103. Example:
  1104.  
  1105.  
  1106.    ^WRITEOFF
  1107.    Do you really want this information saved?
  1108.    ^WRITEON
  1109.  
  1110.  
  1111. REPLACEABLE VARIABLES CURRENTLY SUPPORTED:
  1112.  
  1113.         @NUMCALLS@      Caller number
  1114.         @BPS@           Connect Speed
  1115.         @CITY@          City of the caller
  1116.         @DATAPHONE@     Data phone number
  1117.         @EXPDATE@       Expiration Date
  1118.         @FIRST@         First name with the first letter Capitalized
  1119.         @HOMEPHONE@     Home phone number
  1120.         @LASTDATEON@    Last Date On
  1121.         @LASTTIMEON@    Last Time On
  1122.         @NUMTIMESON@    Number of Times on
  1123.         @SECURITY@      Security Level
  1124.         @USER@          Users full name
  1125.  
  1126. @Xyz variables:
  1127.  
  1128.     Background (y)  (blinking)        Foreground  (z)  (Bold)
  1129.     ---------------------------------------------------------------------
  1130.     Black     = 0       8              Black     = 0     8
  1131.     Blue      = 1       9              Blue      = 1     9
  1132.     Green     = 2       A              Green     = 2     A
  1133.     Cyan      = 3       B              Cyan      = 3     B
  1134.     Red       = 4       C              Red       = 4     C
  1135.     Magenta   = 5       D              Magenta   = 5     D
  1136.     Yellow    = 6       E              Yellow    = 6     E
  1137.     White     = 7       F              White     = 7     F
  1138.     ---------------------------------------------------------------------
  1139.  
  1140.     This information is included only to show how PCBoard uses the @X
  1141.     variables.  Clark Development has created this format.  I do NOT
  1142.     claim any rights to this format.  Also, I do NOT support the @X00
  1143.     or @XFF commands in this release.
  1144.  
  1145.     @X00 - Save the current color
  1146.     @XFF - Restore the saved color
  1147.  
  1148. SETUP:
  1149.  
  1150. Setup of SREAD or SPLUS is very simple.  Create a directory for the
  1151. files somewhere on your system.  You will then have to use a batch file
  1152. (Examples included) to run the door.  There are a number of parameters
  1153. that need to be given to the door.  They are as follows:
  1154.  
  1155. SREAD DOOR.SYS USERS SREAD.QES SREAD.ANS {option1} {option2}
  1156. SPLUS DOOR.SYS USERS SPLUS.QES SPLUS.ANS {option1} {option2}
  1157.  
  1158. DOOR.SYS can be replaced with PCBOARD.SYS if your system does not support
  1159. DOOR.SYS files.
  1160.  
  1161. USERS is the name and path to your users file.
  1162.  
  1163. SREAD.QES or SPLUS.QES is the name of the script file.
  1164.  
  1165. SREAD.ANS or SPLUS.ANS is the answers file for the script question.
  1166.  
  1167. Options:
  1168.    
  1169.      /debug - used to debug your scripts.  Will create an output of
  1170.               the commands as they happened.
  1171.  
  1172.      $LABEL - A label to start executing at in a script.
  1173.  
  1174.  
  1175. Error Levels Currently defined:
  1176.      
  1177.      1   Unable to open BBS system file (pcboard.sys,door.sys etc)
  1178.      2   Problem reading BBS system file
  1179.      3   Unrecognized BBS file type
  1180.      4   Unable to open pcboard USERS file
  1181.      5   Invalid User record or problem seeking to user record
  1182.      6   Problem reading USER record
  1183.      7   PORT command syntax error
  1184.      8   Fossil driver specified but no Fossil driver installed
  1185.      9   Memory allocation problem
  1186.  
  1187.     10   Script file not found
  1188.     11   Unable to open answer file
  1189.     12   Malloc failure
  1190.     13   Refusal through ^ACP (See documentation for more details)
  1191.     14   Calloc failure
  1192.     15   Undefined Door open failure
  1193.     16   Possible virus infection
  1194.     17   Original DOOR.SYS not found
  1195.     18   Unable to open SREAD.TMP file
  1196.  
  1197.     30   ^RUN command used
  1198.     
  1199.     19 -  29 Reserved for SRead
  1200.     
  1201.     31 - 255 Available for ^RTRN command
  1202.  
  1203. Acknowledgements:
  1204.  
  1205.      PCBoard is a registered trademark of Clark Development Company, Inc
  1206.      ProScript is a registered trademark of Samuel H. Smith.
  1207.      PDFC is a trademark of Kevin Carr.
  1208.      D²Script is a trademark of D²Software.
  1209.